'use strict';

// let user={name:'Linda',age:23,city:'New York'};
// let {name,age,city}=user;
// console.log(name);
// console.log(age);
// console.log(city);

// let {foo:foot,bar:barc}={foo:'aaa',bar:'ccc'};
// console.log(foot);
// console.log(barc);

// let [a,b,c,d,e]='hello';
// console.log(a);
// console.log(b);
// console.log(c);
// console.log(d);
// console.log(e);

// let {length:len}='hello';
// console.log(len);

// let x=1;
// let y=2;
// [x,y]=[y,x];
// console.log('x='+x);
// console.log('y='+y);

// function example() {
//     return [1,2,3];
// }
// let [a,b,c]=example();
// console.log(a);  // 1

// function example_1() {
//     return{foo:'大漂亮',bar:'大聪明'};
// }
// let {foo,bar}=example_1();
// console.log(foo);  //大漂亮


// let xiaoming={
//     name:'小明',
//     birth:1990,
//     age:function () {
//         let y=2023;
//         let res=y-this.birth;
//         console.log(res);
//         return res;

//     }
// };

// function pow(x) {
//     return x*x;
// }
// let arr=[1,3,5];
// let res=arr.map(pow);
// console.log(res);

// let arr=[1,2,3,4,5];
// let res=arr.reduce(function (x, y) {
//     return x *10+ y;
// }); 
// console.log(res);

// function product(arr){
//     return 0;
// }
// if(product([1,2,3,4])===24 &&product([0,1,2])===0&&product([99,88,77,66])===44274384){
//     console.log('测试通过！');
// }else{
//     console.log('测试不通过！');
// }

// let arr=['1','2','3'];
// let res=arr.map(Number);
// console.log(res);

// let arr=[1,2,3,4,5];
// let res=arr.map(String);
// console.log(res);

// let arr=[1,3,5,7];
// function res(x) {
//     return x*x;
// }
// let resu=arr.map(res);
// console.log(resu);

// let arr=[1,2,3,4,5];
// let result=arr.reduce(function res(x,y) {
//     return x*y;
// });
// console.log(result);  //120


// let arr=['adam', 'LISA', 'barT'];
// function newarr(str) {
//      result=str.slice(0,1).toUpperCase()+str.slice(1).toLowerCase();
//      return result;
// }
// newarr(arr);

// let word='adma';
// let firstLetter=word.charAt(0);
// let firstLetterCap=firstLetter.toUpperCase();
// let firstLetters=word.slice(1);
// let result=firstLetterCap+firstLetters;
// console.log(result);

// let arr=['adam', 'LISA', 'barT'];
// for(let i=0;i<arr.length;i++){
//     arr[i]=arr[i][0].toUpperCase()+arr[i].substring(1).toLowerCase()
// }
// console.log(arr);  //['Adam', 'Lisa', 'Bart']

// https://www.bookstack.cn/read/liaoxuefeng-JavaScript/17.md


// const s = '13579'
// function string2int(s) {
//     let arr = s.split('').map(function(x){
//         return +x;
//     })
//     console.log(arr) //[1, 3, 5, 7, 9]
//     let arr_reduce = arr.reduce(function(prev,res){
//         console.log(prev, res)
//         return prev*10+res;
//     })
//     console.log(arr_reduce) //13579
//     return arr_reduce

// }
// string2int(s)



// let arr =[10,20,1,2];
// let res =arr.sort(function(x,y){
//     if(x>y){
//         return -1;
//     }
//     if(x===y){
//         return 1;
//     }
//   return 0;
// })
// console.log(res);  //[1, 2, 10, 20]

// let arr=[11,20,51,82];
// let res=arr.every(function(x){
//     return x<20;
// })
// console.log(res);  //false
// console.log(arr);

// let arr=[11,20,51,82];
// let res=arr.find(function(x){
//     return x>20;
// })
// console.log(res);  //51

// let arr=[11,20,51,82];
// let res=arr.findIndex(function(x){
//     return x>20;
// })
// console.log(res);  //2


// let arr=[1,2,3,4,3,5];
// let res=arr.filter(function(x,idx,self){
//     return self.indexOf(x)===idx;
// })
// console.log(res);

// function get_primes(arr) {
//     return arr.filter(function(x){
//         if(x===0 || x===1){
//             return false;
//         }
//         return true;
//     });

// }
// // 测试:
// var
//     x,
//     r,
//     arr = [];
// for (x = 1; x < 100; x++) {
//     arr.push(x);
// }
// r = get_primes(arr);
// if (r.toString() === [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97].toString()) {
//     console.log('测试通过!');
// } else {
//     console.log('测试失败: ' + r.toString());
// }

// 实现变量a的自增
// let a =10;
// function add(){
//     a++;
//     console.log(a);
// }
// add(); //11
// add(); //12
// add(); //13

// let a=10;
// function add2(){
//      let a=10;  //定义一个局部变量，但是实现不了递增
//     a++;
//     console.log(a);
// }
// add2();  //11
// add2();  //11
// add2();  //11
// console.log(a);  //10

//通过闭包，可以使函数内部局部变量递增，不会影响全部变量
// let a=10;
// function add3(){
//     let a=10;
//     return function(){
//         a++;
//         return a;
//     };
// };
// let cc=add3();
// console.log(cc());  //11
// console.log(cc());  //12
// console.log(cc());  //13
// console.log(cc());  //14
// console.log(a);    //10

//for循环中的定时器 观察以下代码，提出修改方案，要求按预期输出1、2、3：
/*************方案一*************** */
// for (var i=1;i<4;i++){
//     ( function(i){
//          setTimeout(function(){
//              console.log(i);
//          });
//      })(i)
//  }

/************ 方案二********* */
// for (let i = 1; i < 4; i++) {
//     setTimeout(function () {
//         console.log(i);
//     }, 100);
// }

// /************方案三************ */
// for (var i = 1; i < 4; i++) {
//     +function () {
//         console.log(i);
//     }()
// }

/**
 * 实现栈结构
 */
// function Stack() {
//     this.items = [];
//     this.push = item => {
//         this.items.push(item);
//     }
//     this.pop = () => this.items.pop();
// }
// let stack = new Stack();

// function Stack(){
//     const items = [];
//     this.push = item=>{
//         items.push(item); // 这里通过闭包访问item
//     }
//     this.pop = ()=>items.pop();// 这里通过闭包访问item
//     return Stack;
// }
// let stack = new Stack();

//经过测试发现问题。可以通过stack.items 直接访问和修改栈内的数据，请提出修改方案，要求不能直接访问items


//使用原型链实现累乘
// function myCalculator(num){
//     this.num=num;
// }


// function mult(a){
//     let x=1;
//     if(typeof (a) === 'function'){
//         a(x);
//     }
//     x=x*a;
//     function abc(b){
//         x=x*b;
//         return x;
//     }
//     return abc;
// }
// let mult4=mult(4);
// console.log(mult4);
// console.log(mult4(1));
// console.log(mult4(7));
// console.log(mult4(100));

// function add(num) {
//     return num + 10;
// }
// console.log(add(5)); //15

// let add2 = num => num + 10;
// console.log(add2(2));  //12


// let arr=[10,20,1,2];
// arr.sort((x,y)=>{
//     return x-y;
// });
// console.log(arr);  //[1, 2, 10, 20]

// console.log(typeof 123);
// console.log(NaN);
// console.log(typeof 'str');
// console.log(typeof true);
// console.log(typeof undefined);
// console.log(typeof Math.abs);
// console.log(typeof null);
// console.log(typeof []);
// console.log(typeof {});


// console.log(123..toString());  //123
// console.log((123).toString());  //123

// let now=new Date();
// console.log(now.getFullYear());  //2023
// console.log(now.getMonth());   //10 ,月份，注意月份范围是~11,10表示11月
// console.log(now.getDate());   //29 ，表示29号
// console.log(now.getDay());   //3  ，表示星期三
// console.log(now.getHours());  //17 ，24小时制
// console.log(now.getMinutes());  //25 ，分钟
// console.log(now.getMilliseconds());  //339 ，毫秒数
// console.log(now.getTime());  //1701249954339 ，以number形式表示的时间戳


// let today=new Date();
// if(today.getMonth()===10 && today.getHours()===18){
//     alert('亲爱的，我预定了晚餐，晚上6点在餐厅见！')
// }
// console.log(today);


// console.log('内部宽度:'+window.innerWidth);  //内部宽度:929
// console.log('内部高度:'+window.innerHeight);  //内部高度:926

// console.log(navigator.language);  //zh-CN
// console.log(navigator.userAgent);

// document.title='努力学习JavaScript!';
// let apple=document.getElementById('苹果');
// let dring=document.getElementsByTagName('li');
// console.log(apple);
// console.log(dring);

// let nums=[1,2,3,5,3,6,2];
// const newNums = Array.from(new Set(nums));


// const newNums = nums.filter((n, i) => {
//     return nums.indexOf(n) === i
// });

// const newNums = nums.forEach((n, i) => {
//     return nums.indexOf(n) === i
// })
// const newNums = nums.reduce((acc, n, i) => {
//     return [].concat(acc, nums.indexOf(n) === i ? n : []
// )
// })
// console.log(newNums);

// let str='我是你爹  !';
// console.log(str.replace(`/(\s*$)/g, ""`));


// setInterval("alert('welcome');",1000);

// console.log(Geolocation.watchPosition()); 
// console.log( Geolocation.getCurrentPosition());
// console.log( Geolocation.getPosition());
// console.log(Geolocation.Position()); 

console.log(setInterval(updateClock,60));
